/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import model.bean.BeanUsuario;
import model.dao.DaoArchivo;
import model.dao.DaoSuscripcion;
import model.dao.DaoUsuario;
import model.dao.DaoValoracion;

@WebServlet(name = "ServletLogin", urlPatterns = {"/ServletLogin"})
/**
 *
 * @author Jesus
 */
public class ServletLogin extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {




        String codigo = request.getParameter("codigo");
        String password = request.getParameter("password");
        String destino = "index.jsp?error=1";
        DaoSuscripcion daoSuscripcion = new DaoSuscripcion();
        DaoValoracion daoValoracion = new DaoValoracion();
        DaoArchivo daoArchivo = new DaoArchivo();

        DaoUsuario daousuario = new DaoUsuario();
        int idusuario = daousuario.autentica(codigo, password);

        if (idusuario != 0) {
            BeanUsuario usuario = daousuario.get(idusuario);

            HttpSession session = request.getSession(true);
            session.setAttribute("ID", session.getId());
            session.setAttribute("usuario", usuario);
            session.setAttribute("listusuarioxcurso", daoSuscripcion.listusuarioxcurso(usuario));
            session.setAttribute("listvalorados", daoValoracion.listvalorados());
            session.setAttribute("listdescargados", daoArchivo.listMasDescargados());
            session.setAttribute("listrecientes", daoArchivo.listMasRecientes());

            if (usuario.getPrivilegio().getNombre().equals("Moderador") && (usuario.getEstado().getNombre().equals("Activo"))) { //falta validar por estado; me producia errores debido a la nuevos cambios en la BD
                destino = "view/moderador/index.jsp";
            } 

            if ((usuario.getPrivilegio().getNombre().equals("Administrador")) && (usuario.getEstado().getNombre().equals("Activo"))) { //falta validar por estado; me producia errores debido a la nuevos cambios en la BD
                destino = "view/admin/index.jsp";
            } 

            if ((usuario.getPrivilegio().getNombre().equals("Usuario")) && (usuario.getEstado().getNombre().equals("Activo"))) { //falta validar por estado; me producia errores debido a la nuevos cambios en la BD
                destino = "view/user/index.jsp";
                //}else if ((usuario.getPrivilegio().getNombre().equals("Usuario")) && (usuario.getEstado().getNombre().equals("No Activo"))) //falta validar por estado; me producia errores debido a la nuevos cambios en la BD
                //{ destino= "view/user/activacion.jsp"; 
            } else if ((usuario.getPrivilegio().getNombre().equals("Usuario")) && (usuario.getEstado().getNombre().equals("No Activo"))) //falta validar por estado; me producia errores debido a la nuevos cambios en la BD
            {
                destino = "view/user/activacion.jsp";
            }
        }
        // response.sendRedirect(destino);
        response.sendRedirect(response.encodeRedirectURL(destino));
//        RequestDispatcher rd=getServletContext().getRequestDispatcher(destino);
//        rd.forward(request, response);



    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        processRequest(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        processRequest(request, response);
    }
}